关于
Typescript是JavaScript类型的超集,可以编译成JavaScript。
主要
基础类型
- 布尔值
- 数字
- 字符串
数组
12let list: number[] = [1,2,3];let list: Array<number> = [1,2,3];元组 允许表示一个一直元素数量和类型的数组,类型可任意。访问已知索引的元素,类型必须匹配;访问越界的元素,类型需是联合类型,即已知类型的并集。
- 枚举 enum类型是对JavaScript标准数据类型的一个补充,可以为一组数值赋予友好的名字,默认元素从0开始编号,可指定。
- Any 对不清楚的变量指定类型,可以避过类型检查,Object也能起到同样作用,但any类型数据可以调用任意方法,Object则不可以。
- Void 与Any类型相反,表示没有任何类型,函数没有返回值时,返回值类型可以为Void;声明Void类型变量没有实际用处,只能赋值undefined和null。
- Null和Undefined JavaScript中null和undefined在Ts中分别有类型null和undefined;Null和Undefined是所有类型的子类型。
- Never 表示永不存在的类型,可以是总会抛出异常或不会有返回值的表达式的返回值类型;是任何类型的子类型。
- 类型断言 强制给值声明类型。123let someValue: string = 'hello world';let lenOne: number = (<string>someValue).length; // 形式一let lenTwo: number = (someValue as string).length; // 形式二
变量声明
- var
- let
- const
- 上述均可运用解构赋值(解构数组、解构对象、解构函数),属性重命名,默认值,展开12345678// 重命名let { a: name1, b: name2 } = o; // 等同下let name1 = 0.a;let name2 = o.b;// 函数声明function f( { a, b } = { a: '', b: 0}): void {// ...}
接口
- 为类型命名,不会检查顺序
- 可选属性 ?
- 只读属性 readonly ReadonlyArray
ReadonlyStringArray - 额外属性检查 当一个对象字面量存在任何目标类型不包含的属性时,会得到错误
函数类型
12345678interface someValue {( key1: string, key2: string ): boolean}let someFunc: someValue;someFunc = function(param1: string, param2: string) { // 不要求参数命名一致let result = param1.search(param2);return result > -1;}可索引类型
- 类类型 当一个类实现一个接口时,只对实例部分进行类型检查,constructor部分属于静态部分,不在检查范围内;
类
- constructor
- extends
- public
- private
- protected
- readonly
- get/set
- static
- abstract
函数
- 可选参数
- 默认参数
- 剩余参数
泛型
- 用参数来表示值的类型
枚举
- enum 可以随意的为复杂的数据类型指定元素的索引
高级类型
- 交叉类型 &
- 联合类型 |